package com.md.model.base;

import com.google.common.collect.Lists;
import com.md.model.html.LabelStyle;
import com.md.value.html.LabelStyleType;
import lombok.Data;

import java.util.List;

/**
 * @author 刘骄阳
 * 2024-06-14 17:32
 */
@Data
public class StyleGroup {
  private final String className;
  private final List<LabelStyle> styles;

  public StyleGroup(final String className) {
    this.className = className;
    styles = Lists.newArrayList();
  }

  public synchronized void addStyle(final LabelStyle style) {
    for (int i = 0; i < styles.size(); i++) {
      if (styles.get(i).getStyleType() == style.getStyleType()) {
        styles.set(i, style);
        return;
      }
    }
    styles.add(style);
  }

  public synchronized void removeStyle(final LabelStyleType style) {
    for (int i = styles.size() - 1; i >= 0; i--) {
      if (styles.get(i).getStyleType() == style) {
        styles.remove(i);
      }
    }
  }

}
